;(function($){
	'use strict';

	//- 验证手机号码 input类型为tel的只能输入数字
	const $tel = $('input[type=tel]');
	if ($tel.length) {
		$tel.on('input propertychange', function () {
	        this.value = this.value.replace(/[^0-9]/g, '');
	        // this.value = this.value.replace(/[^\d]/g, '');
	    }).on('paste contextmenu', function () {
	    	//- 不允许通过复制粘帖、右键粘帖
	    	return false;
	    });
	}

	//- 验证身份证号码
    const $idcard = $('input[valid=idcard]');
    if ($idcard.length) {
        $idcard.on('input propertychange', function () {
            this.value = this.value.replace(/^[a-zA-Z]+\D*|^\d{0,16}[a-zA-Z]+|[^0-9Xx]/g,'')
        }).on('paste contextmenu', function () {
            //- 不允许通过复制粘帖、右键粘帖
            return false;
        });
    }

	/**
	 * 扩展jQuery对象，封装form表单相关插件
	 *
	 * 1.m_form_valid : 表单验证
	 * 2.m_form_blur : 表单内的所有输入框失去焦点
	 * 3.m_form_json : 表单序列化为json格式
	 * 4.m_input_valid : 输入框验证，手机号码验证，数字验证
	 */
	$.fn.extend({
	    m_form_valid: function () {
	        this.m_form_blur();

	        //- 	 			结束本次循环 	    退出循环
			//- for 循环		    continue; 		break;
			//- JQuery $.each 	return true; 	return false;
	        let result = true;
	        this.find('.m-input').each(function(index, el) {
	            result = $(el).m_input_valid();
	            return result;
	        });
	        return result;
	    },
	    m_form_blur: function () {
	    	//- 移除当前获得焦点的元素
	    	if (document.activeElement) document.activeElement.blur();
	        //- $(this).find("input,textarea").blur();
	    },
	    m_form_json: function () {
	        let obj = {};
	        $(this.serializeArray()).each(function() {
	        	obj[this.name] = this.value;
	        });
	        return obj;
	    },
	    m_input_valid: function () {
	        const $this = this,
	            val = $this.val(),
	            placeholder = $this.attr('placeholder');

	        let result = true;

	        //- 必填验证
	        if ($this.attr('required') && utils.empty(val)) {
	            $.toast(placeholder);
	            result = false;
	            return false;
	        }

	        let valid = $this.attr('valid');
	        if (valid) {
	        	//- 忽略大小写问题
	        	valid = valid.toLowerCase();

	        	//- 手机号码校验
	            if (valid === 'mobile') {
	                if (!val.isPhoneNum()) {
	                    $.toast("手机号码格式错误");
	                    $this.val('');
	                    result = false;
	                    return false;
	                }
	            }
	            //- 身份证校验
	            else if (valid === 'idcard') {
	            	if (!val.isIdcard()) {
 						$.toast('身份证格式错误');
	                    $this.val('');
	                    result = false;
	                    return false;
	            	}
	            }
	            //- 数字校验
	            else if (valid === 'number') {
	                const title = placeholder.substr(3);
	                if (!val.isNumber()) {
	                    $.toast(title + '请填写数字');
	                    $this.val('').focus();
	                    result = false;
	                    return false;
	                } else if (val <= 0) {
	                    $.toast(title + '必须大于0');
	                    $this.val('').focus();
	                    result = false;
	                    return false;
	                }
	            }
	        }
	        return result;
	    }
	});
})($);